#import <UIKit/UIKit.h>

@interface UIDevice (SH)

/// self.currentDevice.identifierForVendor.UUIDString
@property (class, nonatomic, copy, nonnull, readonly) NSString *identifierForVendorString;

/// identifierForVendorString ?: @"null"
@property (class, nonatomic, copy, nonnull, readonly) NSString *UUIDString;

/// 当前语言 (UNIX LANG变量) 例:zh-Hans
@property (class, nonatomic, copy, nonnull, readonly) NSString *language;

/// 操作系统版本(String)
@property (class, nonatomic, copy, nonnull, readonly) NSString *systemVersion;

/// 操作系统版本(Float)
@property (class, nonatomic, assign, readonly) CGFloat systemVersionF;

/// 系统名称 例:iOS
@property (class, nonatomic, copy, nonnull, readonly) NSString *systemName;

/// ipv4地址(所有`网卡`)
@property (class, nonatomic, copy, nullable, readonly) NSDictionary<NSString *, NSString *> *ipv4Addresses;

/// ipv6地址(所有`网卡`)
@property (class, nonatomic, copy, nullable, readonly) NSDictionary<NSString *, NSString *> *ipv6Addresses;

/// 是否使用了代理
@property (class, nonatomic, assign, readonly) BOOL isUsingPorxy;

/// 是否使用了VPN
@property (class, nonatomic, assign, readonly) BOOL isUsingVPN;

/// 设备类型　比如iPhone6 iPad iPod等 例:iPhone 6s Plus
@property (class, nonatomic, copy, nonnull, readonly) NSString *deviceType;

/// 设备类型　例:iPhone8,2 x86_64会转成Simulator
@property (class, nonatomic, copy, nonnull, readonly) NSString *deviceModel;

/// 设备类型　例: iPhone8,2 x86_64不会转成Simulator
@property (class, nonatomic, copy, nonnull, readonly) NSString *modelName;

/// 根据屏幕高度判断是否是iPhone4的Size, (screenHeight <= 480)
@property (class, nonatomic, assign, readonly) BOOL isPhone4Like;

/// 是否是iPhoneX
@property (class, nonatomic, assign, readonly) BOOL isPhoneX;

/// 是否是iPhoneX系列 (x, xs, xs max, xr)
@property (class, nonatomic, assign, readonly) BOOL isPhoneXLike;

/// 磁盘大小
@property (class, nonatomic, assign, readonly) long diskSpace;

/// 磁盘大小(String) G/M/KB/B
@property (class, nonatomic, copy, nonnull, readonly) NSString *diskSpaceStr;

/// 剩余可用磁盘大小
@property (class, nonatomic, assign, readonly) long freeDiskSpace;

/// 可用磁盘大小 G/M/KB/B
@property (class, nonatomic, copy, nonnull, readonly) NSString *freeDiskSpaceStr;

@end
